package com.kehong.mapper;

import com.kehong.entity.Emp;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * @author zhang peng yang ming
 * @CopyRight (C) http://www.csdn.com
 * @brief
 * @email 122162005@qq.com
 * @date 2018-07-23
 */
public interface EmpMapper {
    /**
     * 查找所有的员工信息
     * @return
     */
    List<Emp> findAll();

    /**
     * 根据id 查找emp
     */
    @Select("select * from khbr_emp where id=#{id_}")
    Emp findById(Integer id);

    /**
     * 新建员工信息
     * @param emp
     */
    void save(Emp emp);

    /**
     * 1.解决 update 时，字段为null,且把数据库表字段也更新成null，这个bug
     * 2,解决从数据表映射出来的结果有数据但是，entity 的字段为null
     * @param emp
     */
    void update(Emp emp);

    /**
     * less than
     * @return
     */
    List<Emp> findByCondition(@Param("name") String name,
                              @Param("gender")Integer gender,
                              @Param("ltSal") int lt,
                              @Param("gtSal") int gt);


    /**
     * less than
     * @return
     */
    List<Emp> findByChooseWhen(@Param("name") String name,
                              @Param("gender")Integer gender,
                              @Param("ltSal") int lt,
                              @Param("gtSal") int gt);

    List<Emp> findByIds(@Param("ids") List<Integer> ids);


    Emp findById02(Integer id);
}
